ref: https://faun.pub/the-best-infrastructure-as-code-tools-for-2021-b37c323e89f0
這篇文章是一個 IaC (Infrastructure as Code) 的推廣文,文章分成幾個部分,從 IaC 的基本概念與應用談起,接者分析了幾個常見的 IaC 工具,最後探討了實際的使用案例
文章偏長,對於 IaC 概念很熟悉的讀者應該可以很快速地看完,以下針對部分進行一些摘要
The need for Infrastructure as Code
作者先描述過去幫機房部署新伺服器時的各種流程,機器少量時能夠透過人力慢慢處理,但是這類型的操作繁瑣,重複且惱人
為了讓這些流程處理得更佳順遂與一致,會有各式各樣的 scripts 等相關工具被開發出來,而這些流程慢慢的會往自動化的方式去發展。
IaC 文化的興起會使得有愈來愈多獲得共識的工具被開發出來,這使得 IaC 的使用門檻會有機會降低,愈來愈多的使用者能夠更簡易的透過 IaC 的方式來管理與維護自身的架構
Benefits and reasons to implement IaC
IaC 帶來的好處是非常顯著的,譬如
1. 將 Config 檔案當作整個環境的 sing source of truth
2. 每次的部署都是基於上述的 Config 來部署,能夠確保每次部署都獲得一樣的結果,避免人為的反覆長期操作帶來的錯誤
3. 透過程式化的方式去建置環境能夠更快速的去應變各種環境需求,對於 testing, developing, production 等各種變化都可以透過 config 的差異來快速搭建
4. Config 也可以透過 Git 的方式去管理來獲得更好的可稽核性與管理性。
Principles and best practices of Infrastructure as code
作者這邊列出了幾個實作上的推薦方式
1. 透過版本控制的方式來管理 IaC 的設定檔案,能夠讓維運人員使用開發者常見的開發合作流程來管理 IaC
2. 將 IaC 的工具整合到 pipeline 的 CI/CD 流程,讓 CI 流程去檢查 IaC 的設定是否符合預期以及 CD 流程來幫忙自動部署修改架構
Infrastructure as code tools
這個區塊作者列出了幾個常見的工具,包含 Terraform, CloudFormation, Puppet, Pulumi 等,接者又透過一張大表格來比較 Terraform/Pulumi/CloudFormation 三者的差異
Pulumi 這工具這一兩年開始聲勢比較多,跟 Terraform 一個最大的差異我想就是撰寫的方式,可以透過 Js, Go, Python...等程式語言來描述架構而並非使用 Terraform 自定義的 DSL 來管理。
最後面作者也列舉了六七個適合 IaC 的使用場景,有興趣的歡迎閱讀全文
「js pipeline」的推薦目錄:
- 關於js pipeline 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於js pipeline 在 軟體開發學習資訊分享 Facebook 的最佳貼文
- 關於js pipeline 在 軟體開發學習資訊分享 Facebook 的最佳解答
- 關於js pipeline 在 tc39/proposal-pipeline-operator - for JavaScript - GitHub 的評價
- 關於js pipeline 在 Mock Node.js stream pipeline using Jest - Stack Overflow 的評價
- 關於js pipeline 在 Asset Pipeline — Ruby on Rails 指南 的評價
js pipeline 在 軟體開發學習資訊分享 Facebook 的最佳貼文
--課程已於 2020 年 10 月更新 --
如果你厭倦了學習如何部署 Web 應用程式,這是你的課程。
這是你夢想中學習如何部署任何網路應用程式的終極課程。 和 Kubernetes 是 Dev Ops 世界中最新的技術,並且戲劇性地改變了 Web 應用程式的建立和部署流程。 Docker是一種允許應用程式執行在稱為容器結構中的技術,而 Kubernetes 允許許多不同的容器進行協調執行。
✅ Docker 從頭開始學習!
在這門課程中,你將從絕對的基本知識中學習 Docker,從學習諸如”什麼是容器?”這樣的基本問題的答案開始 和”集裝箱是如何運作的?” . 從最開始的幾次演講開始,我們將深入研究集裝箱的內部運作,這樣你就可以核心理解它們是如何被實現的。 一旦你瞭解了什麼是容器,你就會學習如何使用基本的 Docker CLI 命令來處理它們。 在這之後,你將應用你對 Docker CLI 的新發現的掌握,來建構自己的自定義映像檔,有效地’Dockerizing’ 你自己的個人應用程式。
✅ CI + CD 管道
當然,如果沒有對持續整合和持續部署模式的全面理解,Docker 上的課程就不會完整。 你將學習如何使用 Github,Travis CI 和 Amazon Web Services 來實現一個完整的 CI + CD 工作流程,建立一個每次向 Github 推送最新更改時自動部署程式碼的管道(pipeline)!
✅ 多容器在 AWS 上的部署!
在構建一個部署管道之後,你將在 Amazon 網路服務上應用它來管理單個容器和多容器部署。 你將使用 Node、 React、 Redis 和 Postgres 建構一個多容器應用程式,看看容器在執行中的神奇力量(注意: 本課程中的所有 Javascript 程式碼都是可選的,如果不想編寫 JS,則提供完整的原始碼)。
✅ Kubernetes!
最後,你將處理 Kubernetes,這是一個用於管理多個不同執行容器的複雜應用程式的營運等級系統。 你將學習建構 Kubernetes 叢集的正確方法——這門課程沒有那些令人討厭的”不要在生產環境中這樣做”的評論! 你將首先在本地機器上建構一個 Kubernetes 叢集,然後最終將其移植到雲端提供程式。 你甚至可以學習如何在 Kubernetes 上設定 HTTPS,這可比聽起來難多了!
下面就是你要做的:
1. 從零開始學習 Docker,不需要以前的經驗
2. 根據你的應用程式建立自己的自定義映像檔
3. 掌握 Docker CLI 來檢查和除錯執行的容器
4. 瞭解 Docker 是如何在幕後工作的,以及集裝箱(容器)是什麼
5. 使用 Github,Travis CI 和 AWS 一起從頭開始構建 CI + CD 管道
6. 當程式碼被推送到 Github 時自動部署它!
7. 從頭開始建構一個複雜的多容器應用程式並將其部署到 AWS
8. 瞭解 Kubernetes 的用途和理論
9 .將一個可營運的 Kubernetes 群集部署到 Google Cloud 中
https://softnshare.com/docker-and-kubernetes-the-complete-guide/
js pipeline 在 軟體開發學習資訊分享 Facebook 的最佳解答
--課程已於 2020 年 1 月更新--
如果你厭倦了學習如何部署 Web 應用程式,這是你的課程。
Docker 從頭開始學習!
在這門課程中,你將從絕對的基本知識中學習 Docker,從學習諸如”什麼是容器?”這樣的基本問題的答案開始 和”集裝箱是如何運作的?” . 從最開始的幾次演講開始,我們將深入研究集裝箱的內部運作,這樣你就可以核心理解它們是如何被實現的。 一旦你瞭解了什麼是容器,你就會學習如何使用基本的 Docker CLI 命令來處理它們。 在這之後,你將應用你對 Docker CLI 的新發現的掌握,來建構自己的自定義映像檔,有效地’Dockerizing’ 你自己的個人應用程式。
Ci + CD 管線
當然,如果沒有對持續整合和持續部署模式的全面理解,Docker 上的課程就不會完整。 你將學習如何使用 Github,Travis CI 和 Amazon Web Services 來實現一個完整的 CI + CD 工作流程,建立一個每次向 Github 推送最新更改時自動部署程式碼的管線(pipeline)!
多容器在 AWS 上的部署!
在建構一個部署管道之後,你將在 Amazon 網路服務上應用它來管理單個容器和多容器部署。 你將使用 Node、 React、 Redis 和 Postgres 建構一個多容器應用程式,看看容器在執行中的神奇力量(注意: 本課程中的所有 Javascript 程式碼都是可選的,如果不想編寫 JS,則提供完整的原始碼)。
Kubernetes!
最後,你將處理 Kubernetes,這是一個用於管理多個不同執行容器的複雜應用程式的生產級系統。 你將學習建構 Kubernetes 叢集的正確方法——這門課程沒有那些令人討厭的”不要在生產環境中這樣做”的評論! 你將首先在本地機器上建構一個 Kubernetes 叢集,然後最終將其移植到雲端提供程式。 你甚至可以學習如何在 Kubernetes 上設定 HTTPS,這可比聽起來難多了!
https://softnshare.com/docker-and-kubernetes-the-complete-guide/
js pipeline 在 Asset Pipeline — Ruby on Rails 指南 的推薦與評價
Asset Pipeline 提供了一个框架,用于连接、压缩JavaScript 和CSS 文件。还允许使用其他语言和预处理器编写JavaScript 和CSS,例如CoffeeScript、Sass 和ERB。 ... <看更多>
js pipeline 在 tc39/proposal-pipeline-operator - for JavaScript - GitHub 的推薦與評價
Pipe Operator ( |> ) for JavaScript. Stage: 2; Champions: J. S. Choi, James DiGioia, Ron Buckton, Tab Atkins-Bittner, [list incomplete]; Former champions: ... ... <看更多>
相關內容